/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package za.ac.cput.ismaila.designPatterns.structural.flyweight;

import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author Chelsea
 */
public class FlyweightFactory {
private static FlyweightFactory flyweightFactory;
private Map<String,Flyweight>flyweightPool;
private FlyweightFactory(){
flyweightPool = new HashMap<String,Flyweight>();
}
public static FlyweightFactory getInstance(){
if(flyweightFactory==null){
    flyweightFactory=new FlyweightFactory();
    }
    return flyweightFactory;
}
public Flyweight getFlyweight(String key){
if(flyweightPool.containsKey(key)){
    return flyweightPool.get(key);
}else
{
    Flyweight flyweight;
if("add".equals(key)){
    flyweight = new FlyweightAdder();
}
else{
flyweight = new FlyweightMultiplier();
}
    flyweightPool.put(key,flyweight);
return flyweight;
}
}

    
}
